/**
 * ControladoraMateriaCursada.java
 */

 /**
 *  AdSec: Administrador de Secundarias
 *  Copyright (C) 2009 Daniela Ramírez Chaves (dannyrch@gmail.com)
 *  Copyright (C) 2009 Leonel Salazar Valverde (leo87sv@gmail.com)
 *
 *  This file is part of AdSec.
 *  AdSec is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  AdSec is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with AdSec.  If not, see <http://www.gnu.org/licenses/>.
 */

package adsec.negocios;

import java.util.LinkedList;
import adsec.datos.ControladoraBDMateriaCursada;
import adsec.entidades.Anio;
import adsec.entidades.Materia;
import adsec.entidades.MateriaCursada;
import adsec.entidades.Nivel;
import adsec.entidades.Periodos;


public class ControladoraMateriaCursada {

    private ControladoraBDMateriaCursada controladoraBDMateriaCursada;
    private LinkedList<MateriaCursada> listaMateriaCursadas;

    public ControladoraMateriaCursada(){
        this.controladoraBDMateriaCursada = new ControladoraBDMateriaCursada();
        this.listaMateriaCursadas = new LinkedList<MateriaCursada>();
    }//fin de constructor

    public MateriaCursada consultarMateriaCursada(int idMateria, int idMateriaCursada){
        return this.controladoraBDMateriaCursada.consultarMateriaCursada(idMateria, idMateriaCursada);
    }

    public MateriaCursada consultarMateriaCursadaGrid(int fila){
        return this.controladoraBDMateriaCursada.consultarMateriaCursada(this.listaMateriaCursadas.get(fila).getIdMateria(),
                this.listaMateriaCursadas.get(fila).getIdMateriaCursada());
    }

    public LinkedList<MateriaCursada> consultarMateriasCursadas(){
        this.listaMateriaCursadas = this.controladoraBDMateriaCursada.consultarMateriaCursadas();
        return this.listaMateriaCursadas;
    }

    public LinkedList<MateriaCursada> consultarMateriasCursadas(int año, int nivel){
        this.listaMateriaCursadas = this.controladoraBDMateriaCursada.consultarMateriaCursadasAnioNivel(año, nivel);
        return this.listaMateriaCursadas;
    }

    public int insertarMateriaCursada(MateriaCursada materiaCursada, Periodos periodos){
        return this.controladoraBDMateriaCursada.insertarMateriaCursada(materiaCursada, periodos);
    }

    public int modificarMateriaCursada(MateriaCursada materia){
        return this.controladoraBDMateriaCursada.modificarMateriaCursada(materia);
    }

    public int eliminarMateriaCursada(int idMateria, int idMateriaCursada){
        return this.controladoraBDMateriaCursada.eliminarMateriaCursada(idMateria, idMateriaCursada);
    }

    public LinkedList<Nivel> consultarNiveles(){
        ControladoraNivel contrNivel = new ControladoraNivel();
        return contrNivel.consultarNivelesTodos();
    }

    public LinkedList<Anio> consultarAnios(){
        ControladoraAnio contAnio = new ControladoraAnio();
        return contAnio.consultarAnios();
    }

    public LinkedList<Materia> consultarMateriasNivel(int nivel){
        ControladoraMateria contMateria = new ControladoraMateria();
        return contMateria.consultarMateriasNivel(nivel);
    }

    public boolean existeEstudianteLlevaMateriaCursada(int idMateria, int idMateriaCursada){
        return this.controladoraBDMateriaCursada.existeEstudianteLlevaMateriaCursada(idMateria, idMateriaCursada);
    }

    public LinkedList<MateriaCursada> obtenerMateriasNivelAnio(int anio, int nivel){
        return this.controladoraBDMateriaCursada.obtenerMateriasNivelAnio(anio, nivel);
    }

    public LinkedList<MateriaCursada> obtenerMateriasNoAprobadas(int anio, int nivel, String cedulaEstudiante){
        return this.controladoraBDMateriaCursada.obtenerMateriasNoAprobadas(anio, nivel, cedulaEstudiante);
    }
}//fin de ControladoraMateriaCursada
